home *** CD-ROM | disk | FTP | other *** search
/ Amiga Format CD 42 / Amiga Format AFCD42 (Issue 126, Aug 1999).iso / -serious- / misc / cedbar / addnode.g < prev    next >
Text File  |  1999-05-17  |  7KB  |  299 lines

  1. G4C
  2.  
  3. ; gui to create a new node or guide
  4.  
  5. WINBIG 299 24 306 180 AddNode.g
  6. WinType 11110001
  7. resinfo 8 660 270
  8.  
  9. BOX 0 0 305 130 OUT button
  10. BOX 0 130 305 25 OUT button
  11. BOX 0 155 305 25 OUT button
  12.  
  13. xOnLoad mode name ; = NODE or GUIDE
  14. gosub addnode.g getname
  15. gosub addnode.g startup
  16.  
  17. xonreload mode name
  18. gosub addnode.g getname
  19. gosub addnode.g startup
  20.  
  21. ; -------------------------------------------------------
  22. ;       get fields
  23. ; -------------------------------------------------------
  24.  
  25. XTEXTIN 70 5 225 14 "Title" title "" 100
  26. gadid 1
  27. SetGad addnode.g 2 ON
  28.  
  29. XTEXTIN 70 5 225 14 "Author" author "" 100
  30. gadid 11
  31. SetGad addnode.g 12 ON
  32.  
  33. ; -------------------------------------------------------
  34.  
  35. XTEXTIN 70 20 200 14 "Next" next "" 100
  36. gadid 2
  37. SetGad addnode.g 3 ON
  38.  
  39. XICON 270 20 :icons/open
  40. gadid 21
  41. ReqFile -1 -1 300 -36 "Select node:" LOAD next '#$path'
  42. update addnode.g 2 '$next'
  43.  
  44. XTEXTIN 70 20 225 14 "(C)" copyright "" 100
  45. gadid 12
  46. SetGad addnode.g 13 ON
  47.  
  48. ; -------------------------------------------------------
  49.  
  50. XTEXTIN 70 35 200 14 "Prev"  prev "" 100
  51. gadid 3
  52. SetGad addnode.g 4 ON
  53.  
  54. XICON 270 35 :icons/open
  55. gadid 22
  56. ReqFile -1 -1 300 -36 "Select node:" LOAD prev '#$path'
  57. update addnode.g 3 '$prev'
  58.  
  59. XTEXTIN 70 35 225 14 "Version" version "" 100
  60. gadid 13
  61. SetGad addnode.g 4 ON
  62.  
  63. ; -------------------------------------------------------
  64.  
  65. XTEXTIN 70 50 200 14 "Help" help "" 100
  66. gadid 4
  67. if $mode = GUIDE
  68.    SetGad addnode.g 6 ON
  69. else
  70.    SetGad addnode.g 5 ON
  71. endif
  72.  
  73. XICON 270 50 :icons/open
  74. ReqFile -1 -1 300 -36 "Select node:" LOAD help '#$path'
  75. update addnode.g 4 '$help'
  76.  
  77. ; -------------------------------------------------------
  78.  
  79. XTEXTIN 70 65 200 14 "TOC" toc "" 100
  80. gadid 5
  81. SetGad addnode.g 6 ON
  82.  
  83. XICON 270 65 :icons/open
  84. gadid 23 ; to hide it..
  85. ReqFile -1 -1 300 -36 "Select node:" LOAD toc '#$path\/Main'
  86. update addnode.g 5 '$toc'
  87.  
  88. ; -------------------------------------------------------
  89.  
  90. XTEXTIN 70 80 200 14 "OnOpen" onopen "" 100
  91. gadid 6
  92. SetGad addnode.g 7 ON
  93.  
  94. XICON 270 80 :icons/open
  95. ReqFile -1 -1 300 -36 "Select node:" LOAD onopen 'rexx:'
  96. if $onopen > ''
  97.    if $onopen H= /*
  98.       update addnode.g 6 '$onopen'
  99.    else
  100.       ezreq 'Must choose a rexx script!' Ok ''
  101.    endif
  102. endif
  103.  
  104. ; -------------------------------------------------------
  105.  
  106. XTEXTIN 70 95 200 14 "OnClose" onclose "" 100
  107. gadid 7
  108. SetGad addnode.g 8 ON
  109.  
  110. XICON 270 95 :icons/open
  111. ReqFile -1 -1 300 -36 "Select node:" LOAD onclose 'rexx:'
  112. if $onopen > ''
  113.    if $onopen H= /*
  114.       update addnode.g 7 '$onclose'
  115.    else
  116.       ezreq 'Must choose a rexx script!' Ok ''
  117.    endif
  118. endif
  119.  
  120. ; -------------------------------------------------------
  121.  
  122. XTEXTIN 70 110 200 14 "Font" font "" 100
  123. gadid 8
  124.  
  125. XICON 270 110 :icons/open
  126. tfont = ''
  127. ReqFile -1 -1 300 -36 "Select node:" LOAD tfont 'fonts:'
  128. if $tfont > ''
  129.    extract tfont file fsize
  130.    extract tfont path tfont
  131.    extract tfont file font
  132.    appvar font ' $fsize'
  133. endif
  134. update addnode.g 8 '$font'
  135.  
  136. ; -------------------------------------------------------
  137. ;       smartwrap/wordwrap and tab
  138. ; -------------------------------------------------------
  139.  
  140. XCYCLER 16 135 130 14 "" wrap
  141. gadid 15
  142. CSTR "No wrap"   ''
  143. CSTR "SmartWrap" SMARTWRAP
  144. CSTR "WordWrap"  WORDWRAP
  145.  
  146. XHSLIDER 197 135 70 14 "Tab" tab 2 16 8 "%ld"
  147. gadid 16
  148.  
  149. ; -------------------------------------------------------
  150. ;       Make node
  151. ; -------------------------------------------------------
  152.  
  153.  
  154. XBUTTON 116 160 81 14 "_Create!"
  155. guiclose addnode.g
  156. sendrexx $cedbar.gc/cedport 'open new'
  157. sendrexx $cedbar.gc/cedport 'open $name'  ; if new Ced creates it..
  158.  
  159. ; add all lines for which there is an entry
  160.  
  161. if $author > ' '
  162.    sendrexx $cedbar.gc/cedport 'text @AUTHOR $author\n'
  163. endif
  164. if $copyright > ' '
  165.    sendrexx $cedbar.gc/cedport 'text @(C) $copyright\n'
  166. endif
  167. if $version > ' '
  168.    sendrexx $cedbar.gc/cedport 'text \$VER: $version\n'
  169. endif
  170.  
  171. if $title > ' '
  172.    sendrexx $cedbar.gc/cedport 'text @TITLE \"$title\"\n'
  173. endif
  174. if $next > ' '
  175.    sendrexx $cedbar.gc/cedport 'text @NEXT $next\n'
  176. endif
  177. if $prev > ' '
  178.    sendrexx $cedbar.gc/cedport 'text @PREV $prev\n'
  179. endif
  180. if $help > ' '
  181.    sendrexx $cedbar.gc/cedport 'text @HELP $help\n'
  182. endif
  183. if $toc > ' '
  184.    sendrexx $cedbar.gc/cedport 'text @TOC $toc\n'
  185. endif
  186. if $onopen > ' '
  187.    sendrexx $cedbar.gc/cedport 'text @ONOPEN $onopen\n'
  188. endif
  189. if $onclose > ' '
  190.    sendrexx $cedbar.gc/cedport 'text @ONCLOSE $onclose\n'
  191. endif
  192. if $font > ' '
  193.    sendrexx $cedbar.gc/cedport 'text @FONT $font\n'
  194. endif
  195.  
  196. if $tab != 8
  197.    sendrexx $cedbar.gc/cedport 'text @TAB $tab\n'
  198. endif
  199. if $wrap > ' '
  200.    sendrexx $cedbar.gc/cedport 'text @$wrap\n'
  201. endif
  202.  
  203. if $mode = GUIDE  ; save header, edit main
  204.    sendrexx $cedbar.gc/cedport 'save'
  205.    joinfile $path MAIN fullname
  206.    guiload :addnode.g NODE $fullname ; call ourselves again..
  207. else
  208.    SendRexx $cedbar.gc/cedport "expand view"
  209.    name = '' ; for next time..
  210. endif
  211.  
  212. ; save it yourself..
  213.  
  214.  
  215. ; -------------------------------------------------------
  216. ;       routine to get name
  217. ; -------------------------------------------------------
  218.  
  219. xroutine GetName
  220.  
  221. ifexists port ~$cedbar.gc/cedport
  222.    ; if no ced, exit..
  223.    guiquit addnode.g
  224. endif
  225.  
  226. if $mode = NODE
  227.    ; get path from current file name
  228.    sendrexx $cedbar.gc/cedport 'status filename'
  229.    curfilename = $$rexxret
  230.    extract curfilename path path
  231.    if $name = ''
  232.       ReqFile  -1 -1 300 -36 'Enter Node name' LOAD name '#$path'
  233.       if $name = ''
  234.          guiclose addnode.g
  235.          stop
  236.       endif
  237.    endif
  238. else  ; GUIDE
  239.    ReqFile  -1 -1 300 -36 'Enter Guide Dir name' LOAD name ''
  240.    if $name = ''
  241.       guiclose addnode.g
  242.       stop
  243.    endif
  244.    makedir $name
  245.    ifexists dir $name
  246.       path = $name
  247.       ; the file which will contain all header commands
  248.       joinfile $name CBAG_Header name
  249.    else
  250.       guiclose addnode.g
  251.       stop
  252.    endif
  253. endif
  254.  
  255.  
  256. ; -------------------------------------------------------
  257. ;       routine to startup the gui
  258. ; -------------------------------------------------------
  259.  
  260. xroutine startup
  261. ; reset all values every time
  262. update addnode.g 1 ''
  263. update addnode.g 2 ''
  264. update addnode.g 3 ''
  265. update addnode.g 4 ''
  266. update addnode.g 5 ''
  267. update addnode.g 6 ''
  268. update addnode.g 7 ''
  269. update addnode.g 8 ''
  270. update addnode.g 11 ''
  271. update addnode.g 12 ''
  272. update addnode.g 13 ''
  273. update addnode.g 15 8
  274. update addnode.g 16 0
  275. tab = 8
  276. wrap = ''
  277. setgadvalues addnode.g
  278.  
  279. setgad addnode.g 1/100 SHOW
  280. if $mode = NODE
  281.    setgad addnode.g 11/13 HIDE
  282.    setgad addnode.g 5 ON
  283.    extract name file plain_name ; node name
  284.    ongad = 1
  285. else
  286.    setgad addnode.g 1/3 HIDE
  287.    setgad addnode.g 5 HIDE
  288.    setgad addnode.g 21/23 HIDE
  289.    extract name path plain_name ; dir name
  290.    extract plain_name file plain_name
  291.    ongad = 11
  292. endif
  293.  
  294. guiopen addnode.g
  295. setwintitle addnode.g 'New $mode : $plain_name                         '
  296. SetGad addnode.g $ongad ON ; 1st textin
  297.  
  298.  
  299.